היום נאלצתי לעשות טאבים באיזה פרוייקט שאני עושה,
ובדרך כלל הפיתרון של כולם זה הטאבים של jqueryUI
זוהי סיפרייה נוספת ל jquery הרגיל שיש לה כמה UI חביבים בניהם הטאבים,
עם זאת, הקבצים כבדים ומסורבלים, וגם מגיעים עם עיצוב מוגזם לדעתי
שיכול להקשות להתאים אותו לצרכים שלכם.
אז האם יש אפשרות לעשות טאבים בלי סיפריית ה UI?
כן, פשוט בשימוש בספרייה המקורית לכתוב משהו משלכם,
הרבה יותר פשוט, וחוסך המון קוד מיותר לטעון
(ותאמינו לי, אני יודע, כל קילובייט נחשב) וכמובן הנוחות.
אז במקום לייבא כמה סיפריות, הנה דרך לעשות טאבים רק באמצעות jquery (הספריה הרגילה)
באופן פשוט נגדיר את הלשוניות של הטאבים:
<a name="tab1" class="tabs_title">tab1 title</a>
<a name="tab2" class="tabs_title">tab2 title</a>
<a name="tab2" class="tabs_title">tab2 title</a>
וכך נגדיר את התוכן:
<div id="all_tabs">
<div id="tabs1">
content 1
</div>
<div id="tab2">
content 2
</div>
</div>
<div id="tabs1">
content 1
</div>
<div id="tab2">
content 2
</div>
</div>
כפי שפשוט לראות, בdiv שהID שלו הוא שם הטאב, שם יופיע תוכן הטאב.
וכך נפעיל את כל העניין:
<script>
// hide everything that is not your first tab
$('#all_tabs > div[id!="tab1"]').hide();
$('.tabs_title').click(function(){
var tn = $(this).attr("name");
//hide all the tabs that i didnt clicked
$('#all_tabs > div[id!="'+ tn +'"]').hide();
$('#' + tn).show();
});
</script>
// hide everything that is not your first tab
$('#all_tabs > div[id!="tab1"]').hide();
$('.tabs_title').click(function(){
var tn = $(this).attr("name");
//hide all the tabs that i didnt clicked
$('#all_tabs > div[id!="'+ tn +'"]').hide();
$('#' + tn).show();
});
</script>
קוד הג'אווה סקריפט הזה, הוא בעצם ה jquery הרגיל, לא ספריית הUI הכבדה והמעצבנת,
ובעזרת הסיפריה המקורית פשוט מאוד לעשות את אותו הדבר בידיוק,
רק להגדיר בתא הראשון את שם טאב ברירת המחדל.
אני אפילו אסביר מה בידיוק עושה הקוד הזה,
סלקטורים בJQUERY, נועדו לבחור אלמנטים בעמוד שלנו ולעשות עליהם מניפולציות שונות.
הקוד הנ"ל "מאזין" ללחיצה על הקישורים הסוג שלהם הוא טאבים (לפי שם המחלקה),
בודק מה נלחץ, ולפי השם מסתיר את התוכן של כל מה שלא נלחץ,
ומציג רק את התא שצריך.
מקווה שלמדתם להתעסק עם סלקטורים יותר מורכבים ב jquery ושיהיה בהצלחה.
כמובן שזה לא מעוצב, ומי שרוצה שכל הקישורים ישבו כמו שצריך בשורה, וגם לסדר את התוכן מוזמן לעשות זאת באמצעות CSS פשוט.
תגובות לכתבה:
פשוט וטוב :) ואפשר לעשות גם אפקטים של slidein וכדומה..
שאלה - מה הכוונה בטאבים?
כלומר מין כרטיסיות?
כן, כרטיסיות...
אני אני מיבא את הסיפריה של ה jquery ?
תודה על העזרה
<script src="http://code.jquery.com/jquery-1.7.min.js"></script>